using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Ruminate.GUI.Framework;

namespace Ruminate.GUI.Content
{
    /// <summary>
    /// 
    /// </summary>
    public class Image : Element {

        /*####################################################################*/
        /*                               Variables                            */
        /*####################################################################*/
              
        public Texture2D Texture { get; set; }

        /*####################################################################*/
        /*                           Initialization                           */
        /*####################################################################*/

        public Image(int x, int y, Texture2D texture)
            : base(new Offset(x, y, texture.Width, texture.Height)) {

            Texture = texture;
        }

        public Image(int x, int y, int width, int height, Texture2D texture)
            : base(new Offset(x, y, width, height)) {

            Texture = texture;
        }        

        /*####################################################################*/
        /*                                Resized                             */
        /*####################################################################*/
        
        protected internal override void Render() { }

        protected internal override Rectangle ChildRenderArea() {
            return LocationComponent.RenderBounds;
        }

        /*####################################################################*/
        /*                                Logic                               */
        /*####################################################################*/

        protected internal override void Init() { }

        protected internal override void Update() { }

        protected internal override void Draw() {

            SpriteBatch.Draw(Texture, LocationComponent.RenderBounds, Color.White);
        }        
    }
}